package com.ylr.admin.framework.service;

import com.ylr.base.common.dto.PageDto;
import com.ylr.admin.common.dto.uri.UriDto;
import com.ylr.admin.common.dto.uri.UriEnumDto;
import com.ylr.base.common.vo.UpdateStatusVo;
import com.ylr.admin.common.vo.uri.UriFormVo;
import com.ylr.admin.common.vo.uri.UriVo;
import com.ylr.admin.framework.entity.UriEntity;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wyw
 * date: 2023-04-21 11:44:34
 * className: UriService
 * version: 1.0
 * description:
 */
public interface UriService extends IService<UriEntity> {

    /**
     * 保存‘系统接口’操作
     * @param uriVo 参数对象
     */
    void saveUri(UriVo uriVo);

    /**
     * 批量保存‘系统接口’操作
     * @param uriVoList 参数对象列表
     */
    void batchSaveUri(List<UriVo> uriVoList);

    /**
     * 分页查询‘系统接口’操作
     * @param uriFormVo 参数对象
     * @return ‘系统接口’分页数据
     */
    PageDto<UriDto> pageUriList(UriFormVo uriFormVo);

    /**
     * 获取‘系统接口’操作
     * @param id 主键
     * @return ‘系统接口’数据
     */
    UriDto getUri(Long id);

    /**
     * 获取下一个排序等级操作
     * 根据父级主键，获取其子接口的下一个排序等级
     * @param parentId 父级主键
     * @return 排序等级数值
     */
    Integer getNextSort(Long parentId);

    /**
     * 获取接口包结构树操作
     * 如果传递父级主键，则获取其子包结构树
     * @param parentId 父级主键
     * @return 接口包结构树数据
     */
    List<UriDto> getPacket(Long parentId);

    /**
     * 获取页面枚举数据操作
     * @return 页面枚举数据
     */
    UriEnumDto getPageEnums();

    /**
     * 修改‘系统接口’操作
     * @param uriVo 参数对象
     */
    void updateUri(UriVo uriVo);

    /**
     * 修改‘系统接口’状态操作
     * @param updateStatusVo 参数对象
     */
    void updateUriStatus(UpdateStatusVo updateStatusVo);

    /**
     * 删除‘系统接口’操作
     * @param idList 主键列表
     */
    void deleteUri(List<Long> idList);


}

